package homework04.test02;

import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Test02 {

    public static void main(String[] args) {
        // 创建Scanner类的对象, 接收用户输入的字符串
        Scanner sc = new Scanner(System.in);
        // 声明ArrayList类, 用来存储用户输入的字符串; 当用户输入end, 将list集合中的元素写入文件中
        ArrayList<String> inputs = new ArrayList<>();

        while (true) {

            System.out.println("请输入字符串:");
            //接收用户输入的字符串
            String str = sc.next();
            //如果用户输入end, 结束输入
            if ("end".equalsIgnoreCase(str)) {
                break;
            }
            //将用户输入的字符串添加到list集合中
            inputs.add(str);
        }

        //结束输入, 关闭Scanner对象
        sc.close();
        // 调用Collections工具类的sort方法, 使用lambda表达式, 重新定义集合中的元素排序, 按字典序倒序排列
        Collections.sort(inputs, (o1, o2) -> o2.compareTo(o1));

        System.out.println("您刚才输入的字符串是:");
        for (String str : inputs) {
            //打印输出, 看一下是否正常
            System.out.println(str);
        }

        FileWriter fw = null;
        try {
            // 创建字符流FileWriter对象, 准备写入项目下的abc.txt文件中; 因为要写入项目下, 所以使用相对路径
            fw = new FileWriter("./abc.txt");
            // 遍历用户输入的字符串并写入
            for (String str : inputs) {
                fw.write(str + "\r\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (null != fw) {
                try {
                    //关闭流对象, 释放相关资源
                    fw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }
    }
}
